package cn.tqfeiyang.smartadmin.business.organization.mapper;

import cn.tqfeiyang.smartadmin.business.organization.entity.PositionEntity;
import cn.tqfeiyang.smartadmin.business.organization.request.PositionQueryDTO;
import cn.tqfeiyang.smartadmin.business.organization.response.PositionQueryVO;
import cn.tqfeiyang.smartadmin.commons.mybatis.MPBaseMapper;
import cn.tqfeiyang.smartadmin.commons.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 职务映射接口
 *
 * @author tqfeiyang
 * @since 2024-09-30
 */
@Mapper
public interface PositionMapper extends MPBaseMapper<PositionEntity> {

    /**
     * 查询职务列表
     *
     * @param dto 查询请求
     * @return 职务列表
     */
    List<PositionQueryVO> getPositionQueryVOList(@Param(Constants.DTO) PositionQueryDTO dto);

    /**
     * 检查名称是否存在？
     *
     * @param name 名称
     * @param excludeId 排除的id
     * @return 如果名称已经存在则返回true，否则返回false
     */
    boolean checkNameExists(String name, Long excludeId);

    /**
     * 检查职级是否存在？
     *
     * @param level 职级
     * @param excludeId 排除的id
     * @return 如果职级已经存在则返回true，否则返回false
     */
    boolean checkLevelExists(String level, Long excludeId);
}
